package davelha.server;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Vector;

import davelha.common.BaseGameInterface;
import davelha.common.Game;
import davelha.common.Player;

public interface BaseServerInterface extends Remote{
//	public BaseGameInterface[] retrieveGameList() throws RemoteException;
	public Vector<String> retrieveGamesRmiId() throws RemoteException;
	
	public Vector<Game> retrieveGameList() throws RemoteException;
	
	public String getServerName() throws RemoteException;
	
	public boolean createNewGame(String gameName, Player player1) throws RemoteException;
	
	public int addPlayerToServer(Player player) throws RemoteException;
	
	public boolean connectToGame(Player player, int gameId) throws RemoteException;
	
	public Vector<BaseGameInterface> getPlayerGames(Player player) throws RemoteException;
	
	public Vector<BaseGameInterface> getPlayerChallengeGames(Player player) throws RemoteException;
	
	public void setGameStatus(int gameId, int gameStatus) throws RemoteException;
	
	public void removePlayer2FromGame(int gameId) throws RemoteException;
	
	public boolean removeGameAt(int gamePos) throws RemoteException;
	
	public boolean removeGame(int gameId) throws RemoteException;

}
